package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.DstTxnAuthCfg;

import java.util.List;
import java.util.Set;

/**
 * 通道交易权限配置表操作接口
 * Created by 王成 on 2017/11/22.
 */
public interface DstTxnAuthCfgMapper {
    /**
     * 获取所有渠道的交易配置信息
     *
     * @param dbPoolCashNode    数据库连接池缓存节点集合
     * @param dstTxnAuthCfgList 支付通道交易配置信息
     * @throws Exception 异常
     */
    void loadAllDstTxnAuthCfg(Set<String> dbPoolCashNode, List<DstTxnAuthCfg> dstTxnAuthCfgList) throws Exception;

    /**
     * 获取所有渠道的交易配置信息
     *
     * @param dstTxnAuthCfgList 支付通道交易配置信息
     * @throws Exception 异常
     */
    void loadAllDstTxnAuthCfg(List<DstTxnAuthCfg> dstTxnAuthCfgList) throws Exception;

    /**
     * 根据法人行机构号及通道标识查询交易权限配置信息
     *
     * @param instId   法人行机构标识
     * @param msgDstId 通道标识
     * @return 通道交易权限配置信息
     * @throws Exception 异常
     */
    List<DstTxnAuthCfg> selectDstTxnAuthCfgInfo(String instId, String msgDstId) throws Exception;

    /**
     * 根据主键查询通道交易权限配置信息
     *
     * @param instId     多法人机构标识
     * @param msgDstId   通道标识
     * @param channelTxn 通道交易码
     * @return 通道交易权限配置信息
     * @throws Exception 异常
     */
    DstTxnAuthCfg selectDstTxnAuthCfgByPrimaryKey(String instId, String msgDstId, String channelTxn) throws Exception;

    /**
     * 根据主键更新通道交易权限配置信息
     *
     * @param dstTxnAuthCfg 通道交易权限配置信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateDstTxnAuthCfgByPrimaryKey(DstTxnAuthCfg dstTxnAuthCfg) throws Exception;

    /**
     * 登记通道交易权限配置信息
     *
     * @param dstTxnAuthCfg 通道交易权限配置信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertDstTxnAuthCfg(DstTxnAuthCfg dstTxnAuthCfg) throws Exception;
}
